# 可变类型: list,dict,set
# 不可变类型: bool,str, tuples, 和 numbers


# 参数传递(实参给形参赋值!!!)永远传的是栈里面存的东西!!!!!

# 值传递
# a = 1
# def change(a):  #参数a就是change函数的一个局部变量
#     print(1,a)
#     a = 10 # 修改参数a的值
#     print(2,a)
# change(a)
#
# print(3,a)



# # 引用传递
# def changeme(mylist):
#     mylist.append([1, 2, 3, 4])
#     print("函数内取值: ", mylist)
#     return
#
# mylist = [10, 20, 30]
# changeme(mylist) # [10, 20, 30]
# print("函数外取值: ", mylist)


def create_and_modify_list(num):
    my_list = [num, 'second']
    my_list[0] = 100  # 尝试修改列表中的第一个元素
    num = 200  # 尝试修改传入的整数
    return my_list

# 测试
num = 50
new_list = create_and_modify_list(num)
print(new_list)
print(num)